package Jogador;

import java.util.Scanner;

import Posicao.Posicao;
import Tabuleiro.Tabuleiro;

public class JogadorHumano implements JogadorIF {
	private int bombasDescobertas = 0;
	private String nome = "";
	
	public JogadorHumano(String nome) {
		this.setNome(nome);
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getNome() {
		return this.nome;
	}

	public void setBombasDescobertas(int bombasDescobertas) {
		this.bombasDescobertas = bombasDescobertas;
	}

	public int getBombasDescobertas() {
		return this.bombasDescobertas;
	}

	public Posicao jogada(Tabuleiro tabuleiro) {
		Scanner entrada = new Scanner( System.in );;
		int linha = 0, coluna = 0;
		boolean ok = false;
		Posicao posicao = new Posicao(-1,-1);

		do {
			System.out.print("Informe linha e coluna (Ex: 1 1): ");
			try {
				linha = entrada.nextInt();
				coluna = entrada.nextInt();
			} catch (java.util.InputMismatchException e) {
				System.out.println("Por favor, pressione [ENTER] e informe inteiros validos!");
				entrada.nextLine();
				linha = -1;
				coluna = -1;
			}
			if(linha >= 0 || coluna >= 0) {
				if(!tabuleiro.verificaValor(linha-1) || !tabuleiro.verificaValor(coluna-1)) //garante o acesso apenas a posicoes validas da matriz do tabuleiro
					System.out.println("Posicao invalida! Informe uma nova posicao...");
				else {
					if(tabuleiro.verificaStatusCasa(linha-1, coluna-1)) //garante o acesso apenas a casas ainda nao identificadas.
						System.out.println("Posicao anteriormente acessada! Informe uma nova posicao...");
					else ok = true;
				}
			}
		} while(!ok);

		posicao.setX(linha-1); //mapeamento para as posicoes da matriz do tabuleiro.
		posicao.setY(coluna-1);

		return posicao;
	}

	public String toString() {
		return this.nome + " " + this.bombasDescobertas;
	}
}

